# src/core/interfaces.py
from abc import ABC, abstractmethod
from typing import List

class IDocumentReader(ABC):
    """文档读取器接口，负责将文件内容转换为 Markdown 字符串。"""
    @abstractmethod
    def read(self, file_path: str) -> str:
        pass

class IDocumentWriter(ABC):
    """文档写入器接口，负责将 Markdown 字符串写入文件。"""
    @abstractmethod
    def write(self, content: str, output_path: str):
        pass

class IQuestionSplitter(ABC):
    """问题分割器接口，负责将整个 Markdown 文档分割成单个问题的列表。"""
    @abstractmethod
    def split(self, content: str) -> List[str]:
        pass

class ILLMProcessor(ABC):
    """LLM 处理器接口，负责处理单个问题并返回答案。"""
    @abstractmethod
    def process(self, question_text: str) -> str:
        pass